home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Club 2000 October / Software of the Month - Ultimate Collection Shareware 277.iso / pc / PROGRAMS / UTILITY / WINLINUX / DATA1.CAB / programs_-_include / LINUX / CAPI.H < prev    next >
C/C++ Source or Header  |  1999-09-17  |  3KB  |  128 lines

  1. /*
  2.  * $Id: capi.h,v 1.1 1997/03/04 21:27:33 calle Exp $
  3.  * 
  4.  * CAPI 2.0 Interface for Linux
  5.  * 
  6.  * Copyright 1997 by Carsten Paeth (calle@calle.in-berlin.de)
  7.  * 
  8.  * $Log: capi.h,v $
  9.  * Revision 1.1  1997/03/04 21:27:33  calle
  10.  * First version in isdn4linux
  11.  *
  12.  * Revision 2.2  1997/02/12 09:31:39  calle
  13.  * new version
  14.  *
  15.  * Revision 1.1  1997/01/31 10:32:20  calle
  16.  * Initial revision
  17.  *
  18.  * 
  19.  */
  20.  
  21. #ifndef __LINUX_CAPI_H__
  22. #define __LINUX_CAPI_H__
  23.  
  24. #include <asm/types.h>
  25. #include <linux/ioctl.h>
  26. #ifndef __KERNEL__
  27. #include <linux/kernelcapi.h>
  28. #endif
  29.  
  30. /*
  31.  * CAPI_REGISTER
  32.  */
  33.  
  34. typedef struct capi_register_params {    /* CAPI_REGISTER */
  35.     __u32 level3cnt;    /* No. of simulatneous user data connections */
  36.     __u32 datablkcnt;    /* No. of buffered data messages */
  37.     __u32 datablklen;    /* Size of buffered data messages */
  38. } capi_register_params;
  39.  
  40. #define    CAPI_REGISTER    _IOW('C',0x01,struct capi_register_params)
  41.  
  42. /*
  43.  * CAPI_GET_MANUFACTURER
  44.  */
  45.  
  46. #define CAPI_MANUFACTURER_LEN        64
  47.  
  48. #define    CAPI_GET_MANUFACTURER    _IOWR('C',0x06,CAPI_MANUFACTURER_LEN)
  49.  
  50. /*
  51.  * CAPI_GET_VERSION
  52.  */
  53.  
  54. typedef struct capi_version {
  55.     __u32 majorversion;
  56.     __u32 minorversion;
  57.     __u32 majormanuversion;
  58.     __u32 minormanuversion;
  59. } capi_version;
  60.  
  61. #define CAPI_GET_VERSION    _IOWR('C',0x07,struct capi_version)
  62.  
  63. /*
  64.  * CAPI_GET_SERIAL
  65.  */
  66.  
  67. #define CAPI_SERIAL_LEN        8
  68. #define CAPI_GET_SERIAL        _IOWR('C',0x08, CAPI_SERIAL_LEN)
  69.  
  70. /*
  71.  * CAPI_GET_PROFILE
  72.  */
  73.  
  74. typedef struct capi_profile {
  75.     __u16 ncontroller;    /* number of installed controller */
  76.     __u16 nbchannel;    /* number of B-Channels */
  77.     __u32 goptions;        /* global options */
  78.     __u32 support1;        /* B1 protocols support */
  79.     __u32 support2;        /* B2 protocols support */
  80.     __u32 support3;        /* B3 protocols support */
  81.     __u32 reserved[6];    /* reserved */
  82.     __u32 manu[5];        /* manufacturer specific information */
  83. } capi_profile;
  84.  
  85. #define CAPI_GET_PROFILE    _IOWR('C',0x09,struct capi_profile)
  86.  
  87. typedef struct capi_manufacturer_cmd {
  88.     unsigned long cmd;
  89.     void *data;
  90. } capi_manufacturer_cmd;
  91.  
  92. /*
  93.  * CAPI_MANUFACTURER_CMD
  94.  */
  95.  
  96. #define CAPI_MANUFACTURER_CMD    _IOWR('C',0x20, struct capi_manufacturer_cmd)
  97.  
  98. /*
  99.  * CAPI_GET_ERRCODE
  100.  * capi errcode is set, * if read, write, or ioctl returns EIO,
  101.  * ioctl returns errcode directly, and in arg, if != 0
  102.  */
  103.  
  104. #define CAPI_GET_ERRCODE    _IOR('C',0x21, __u16)
  105.  
  106. /*
  107.  * CAPI_INSTALLED
  108.  */
  109. #define CAPI_INSTALLED        _IOR('C',0x22, __u16)
  110.  
  111. /*
  112.  * member contr is input for
  113.  * CAPI_GET_MANUFACTURER, CAPI_VERSION, CAPI_GET_SERIAL
  114.  * and CAPI_GET_PROFILE
  115.  */
  116. typedef union capi_ioctl_struct {
  117.     __u32 contr;
  118.     capi_register_params rparams;
  119.     __u8 manufacturer[CAPI_MANUFACTURER_LEN];
  120.     capi_version version;
  121.     __u8 serial[CAPI_SERIAL_LEN];
  122.     capi_profile profile;
  123.     capi_manufacturer_cmd cmd;
  124.     __u16 errcode;
  125. } capi_ioctl_struct;
  126.  
  127. #endif                /* __LINUX_CAPI_H__ */
  128.